// 获取数据库的连接对象
const connection = require("../app/database")

// 将数据保存到数据库
class UserService {
  // 将 user 对象保存到数据库中
  async create(user) {
    // 解构用户信息
    const { name, password } = user
    // 预处理语句 sql
    const statement = "INSERT INTO user (name,password) VALUES (?,?);"
    // 执行 sql语句，后面是待传参数，并且这是一个异步操作
    // 就是说要等到sql语句执行完，再告诉用户执行成功
    // 结果是一个 [{}] 所以就解构出来
    const [result] = await connection.execute(statement, [name, password])

    // 返回调用者
    return result
  }

  // 查询用户名是否已经存在
  async findUserByName(name) {
    const statement = "SELECT * FROM user WHERE name = ?;"
    const [values] = await connection.execute(statement, [name])
    return values
  }

  // 更新用户头像的地址
  async updateUserAvatar(avatarUrl, userId) {
    const statement = `UPDATE user SET avatar_url = ? WHERE id = ?;`
    const [result] = await connection.execute(statement, [avatarUrl, userId])
    return result
  }
}

module.exports = new UserService()
